package cn.nuc.edu.onlinestore.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.nuc.edu.onlinestore.dao.FunMapper;
import cn.nuc.edu.onlinestore.entity.SysFunction;
import cn.nuc.edu.onlinestore.service.interfaces.IFunService;
import cn.nuc.edu.onlinestore.util.PageControl;
import cn.nuc.edu.onlinestore.util.Pager;

/**
 * 系统功能业务逻辑
 * @author 王凯
 *
 */
@Service
public class FunService implements IFunService {

	/**
	 * 功能映射器
	 */
	@Autowired
	private FunMapper mapper;
	
	/**
	 * 添加系统功能
	 */
	@Transactional
	public Integer addfun(SysFunction fun) {
		return mapper.addfun(fun);
	}

	/**
	 * 查询系统功能
	 */
	public Pager<SysFunction> list(SysFunction fun, PageControl pc) {

		//获取封装的分页参数
		Map<String, Object> paramMap = new HashMap<>();
		paramMap.put("currentindex", pc.getCurrentindex());
		paramMap.put("pagesize", pc.getPagesize());
		paramMap.put("sname", fun.getFunname());
		
		//执行分页查询操作
		List<SysFunction> funlist = mapper.list(paramMap);
		
		//获得总记录数
		Integer count = mapper.getAllCount();
		
		//封装分页信息
		Pager<SysFunction> pager = new Pager<>();
		pager.setList(funlist);
		pc.setRscount(count);
		pager.setPagectrl(pc);
		
		return pager;
	}

	/**
	 * 获取系统功能的详细信息
	 */
	public SysFunction detail(SysFunction fun) {
		return mapper.detail(fun);
	}

	/**
	 * 修改系统功能
	 */
	@Transactional
	public Integer edit(SysFunction fun) {
		return mapper.edit(fun);
	}

}
